#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
中文语言包
"""

MESSAGES = {
    # 频率处理相关
    'frequency_completed': '频率 {frequency} Hz 处理完成，数据点数: {len_splats} ({index}/{total}) [{progress_bar}] {progress_percent:.1f}%，凸包面积: {convex_hull_area:.2e}',
    'frequency_processing': '正在处理频率 {frequency} Hz...',
    'frequency_saved': '频率 {frequency} Hz 数据已保存到 {filename}',
    'frequency_failed': '频率 {frequency} Hz 处理失败: {error}',
    
    # 进度相关
    'progress_start': '开始处理 {total} 个频率点',
    'progress_complete': '所有频率处理完成',
    'progress_error': '处理过程中发生错误: {error}',
    
    # 文件操作相关
    'file_created': '文件已创建: {filename}',
    'file_saved': '文件已保存: {filename}',
    'file_error': '文件操作失败: {error}',
    
    # 自动化相关
    'automation_started': 'SIMION自动化任务已启动',
    'automation_completed': 'SIMION自动化任务已完成',
    'automation_failed': 'SIMION自动化任务失败: {error}',
    'automation_stopped': 'SIMION自动化任务已停止',
    
    # 服务器相关
    'server_started': 'Python服务器已启动',
    'server_stopped': 'Python服务器已停止',
    'server_error': '服务器错误: {error}',
    
    # 通用消息
    'success': '成功',
    'error': '错误',
    'warning': '警告',
    'info': '信息',
    
    # 工作空间相关
    'workspace_unavailable_single_thread': '工作空间管理模块不可用，将使用单线程模式',
    'workspace_detected': '检测到simion_workspace目录已存在',
    'workspace_path': '工作空间路径: {path}',
    'workspace_legacy': '这可能是上次运行遗留的工作空间，建议手动清理',
    'workspace_auto_cleanup': '如果继续运行，系统将自动清理旧的工作空间',
    'workspace_contents': '工作空间包含 {count} 个项目:',
    'workspace_more_items': '  ... 还有{count}个项目',
    'workspace_read_error': '无法读取工作空间内容: {error}',
    'workspace_not_detected': '未检测到simion_workspace目录，可以正常启动',
    'workspace_setup_failed': '工作空间设置失败，回退到单线程模式',
    'workspace_multi_task': '✅ 多任务模式：使用并行执行，工作空间已隔离',
    'workspace_single_freq': '单频率任务，禁用工作空间管理以提高性能',
    'workspace_single_thread': '工作空间管理不可用，使用单线程模式',
    'workspace_decision': '=== 工作空间管理决策 ===',
    'workspace_available': '工作空间管理可用: {available} 线程数量: {threads} 频率数量: {frequencies}',
    
    # 文件验证相关
    'simion_not_found': 'SIMION可执行文件不存在: {path}',
    'iob_not_found': 'IOB文件不存在: {path}',
    'lua_not_found': 'Lua文件不存在: {path}',
    'lua_retry': 'Lua文件不存在，重试 {attempt}/{max_retries}: {path}',
    'lua_write_retry': '写入Lua文件失败，重试 {attempt}/{max_retries}: {error}',
    'lua_write_failed': '写入Lua文件最终失败: {error}',
    'lua_update_failed': '更新Lua文件失败: {error}',
    
    # 命令执行相关
    'command_execution_failed': '=== SIMION命令执行失败 ===',
    'command_details': '命令: {cmd} 返回码: {code} 工作目录: {work_dir}',
    'return_code_1': '返回码1: 一般性错误，可能是参数错误或文件问题',
    'return_code_2': '返回码2: 误用shell命令',
    'return_code_126': '返回码126: 命令不可执行，可能是权限问题或文件损坏',
    'return_code_127': '返回码127: 命令未找到，请检查SIMION路径是否正确',
    'return_code_128': '返回码128: 无效的退出参数',
    'return_code_signal': '返回码{code}: 进程被信号{signal}终止',
    'signal_9': '  信号9 (SIGKILL): 进程被强制终止',
    'signal_15': '  信号15 (SIGTERM): 进程被正常终止',
    'return_code_unknown': '返回码{code}: 未知错误',
    
    # 错误输出相关
    'error_output_details': '=== 错误输出详情 ===',
    'error_line': '错误行{line_num}: {line}',
    'error_more_lines': '... 还有{count}行错误信息',
    'no_error_output': '无错误输出信息',
    'stdout_details': '=== 标准输出（可能包含错误信息）===',
    'output_line': '输出行{line_num}: {line}',
    'output_more_lines': '... 还有{count}行输出信息',
    
    # 异常处理相关
    'exception_details': '异常类型: {type} 异常信息: {message} 命令: {cmd} 工作目录: {work_dir}',
    
    # 数据解析相关
    'parsing_line': '行{line_num}: {line}',
    'parsing_value_error': '解析Splat数据时数值转换错误: {error}, 行: {line}',
    'regex_match_failed': '=== 正则表达式匹配失败 ===',
    'splat_line': 'Splat行 {line_num}: {line}',
    'regex_pattern': '正则表达式: {pattern}',
    'simple_match_success': '简单匹配成功，x值: {value}',
    'simple_match_failed': '连简单匹配都失败了',
    
    # 数据退化相关
    'data_degenerate_x': '数据退化：所有x坐标相同 ({value})，无法计算凸包',
    'data_degenerate_y': '数据退化：所有y坐标相同 ({value})，无法计算凸包',
    'data_degenerate_points': '数据退化：所有点重合，无法计算凸包',
    'qhull_error': 'QHull退化数据错误，跳过凸包计算: {error}',
    'convex_hull_failed': '凸包计算失败，使用简化版本: {error}',
    
    # 频率处理相关
    'frequency_no_data': '频率 {frequency} Hz: SIMION命令执行成功，但未解析到有效的Splat数据',
    'frequency_no_data_reasons': '  这可能是因为：',
    'frequency_no_data_reason_1': '  1. 粒子轨迹没有到达检测器',
    'frequency_no_data_reason_2': '  2. 检测器位置设置不当',
    'frequency_no_data_reason_3': '  3. 粒子能量不足或轨迹偏离',
    'frequency_no_data_reason_4': '  4. Lua脚本中的检测逻辑问题',
    'frequency_no_valid_data': '未检测到有效粒子数据',
    'frequency_processing_error': '处理频率 {frequency} Hz 时出错: {error}',
    
    # 文件保存相关
    'csv_dir_create_failed': '无法创建输出目录: {path}',
    'csv_dir_not_writable': '输出目录不可写: {path}',
    'csv_save_failed': '保存CSV文件失败: {error} 目标路径: {target} 输出目录: {output} 目录是否存在: {exists} 目录是否可写: {writable}',
    'splat_data_format_error': 'Splat数据格式不正确，质量设为0',
    'no_splat_data': '未提供splat数据，质量设为0',
    'summary_data_prep_failed': '准备summary数据失败: {error}',
    'summary_save_failed': '保存summary.csv失败: {error} 目标路径: {target} 输出目录: {output} 目录是否存在: {exists} 目录是否可写: {writable}',
    
    # 线程和任务相关
    'frequency_list_length': '频率列表长度: {count}',
    'thread_count': '线程数量: {count}',
    'task_count_less_cpu': '任务数({tasks}) ≤ CPU核心数({cpu})，使用任务数作为线程数',
    'task_count_more_cpu': '任务数({tasks}) > CPU核心数({cpu})，使用CPU核心数作为线程数',
    'using_single_thread': '使用单线程模式',
    
    # 清理相关
    'cleanup_temp_files': '清理临时文件: {path}',
    'cleanup_workspace': '清理工作空间: {path}',
    'cleanup_failed': '清理失败: {error}',
    
    # 统计相关
    'total_frequencies': '总计: {count} 个频率',
    'success_count': '成功处理: {count} 个频率',
    'failed_count': '失败处理: {count} 个频率',
    'automation_complete': '=== SIMION自动化完成 ===',
    'error_details': '=== 错误详情 ===',
    
    # 其他
    'current_directory': '当前目录'
}
